8
תגובות

הגרלת אחוזים.

פתח משתמש_226842 ,
יש דרך יותר טובה להגריל אחוזים?

כאילו שיהיה סיכוי של 10 אחוז שיודפס 10%, סיכוי של 20 אחוז שיודפס 20% וכו'..
<?php
 
  $rand = rand(0,9);
 
  switch($rand){
    /* -- 10% -- */
    case 0:
      echo "10%";
      break;
    /* -- 20% -- */
    case 1:
    case 2:
      echo "20%";
      break;
    /* -- 30% -- */
    case 3:
    case 4:
    case 5:
      echo "30%";
      break;
    /* -- 40% -- */
    case 6:
    case 7:
    case 8:
    case 9:
      echo "40%";
      break;
  }

8 תשובות

avatar ענה משתמש_225728 ב 05 ליוני 2012 #

$rand = rand(0,9);
if ($rand==0) {
echo "10%";
}
else if ($rand>0 && $rand<3) {
echo "20%";
}
else if ($rand>2 && $rand<6) {
echo "30%";
}
else {
echo "40%";
}

עוזר לך?

avatar ענה משתמש_226842 ב 05 ליוני 2012 #

תודה רבה, בסוף אוסיף למערך עוד כמה אלמנטים וזהו.

avatar ענה intval ב 05 ליוני 2012 #

כאילו שיהיה סיכוי של 10 אחוז שיודפס 10%, סיכוי של 20 אחוז שיודפס 20% וכו'..

אתה יודע מה לא מסתד במשפט הזה?
שיש 100% סיכוי שתודפס המחרוזת "100"

לאומת זאת יהיה די הגיוני שהסיכוי שלמסך יודפס המספר 60 שווה ערך לסיכוי שלמסך יודפס המספר 10.

avatar ענה משתמש_231128 ב 06 ליוני 2012 #

@intval

לא כ"כ הבנת, זה עדיין מוגבל:
10% שיהיה כתוב 10%
20% שיהיה כתוב 20%
30% שיהיה כתוב 30%
40% שיהיה כתוב 40%
זה יוצא:
10%+20%+30%+40%=100%
אין יותר מ100%..

הבנת?

*בכל מקרה מישה עזר לי כבר ועזבתי ת'דרך הזאת, אני עובד עם מערכים כרגע.
תודה בכל מקרה.

avatar ענה משתמש_232428 ב 07 ליוני 2012 #

<?php

  $rand = rand(0,9);
  switch($rand)
  {
    /* -- 10% -- */
    case 0:
  {
      echo "10%";
      break;
  }
    /* -- 20% -- */
    case 1, 2:
  {
      echo "20%";
    break;
  }
    /* -- 30% -- */
    case 3..5:
  {
      echo "30%";
    break;
  }
    /* -- 40% -- */
    case 6..9:
  {
      echo "40%";
      break;
  }
  }

avatar ענה intval ב 07 ליוני 2012 #

באיזה שפה זה ? :)

avatar ענה משתמש_232205 ב 07 ליוני 2012 #

יש לי גם שאלה
יש דרך להגדיר אחוזים מסויימים שיצא מקרה מסויים
לדוגמה אני רוצה שיהיה סיכוי של 50 חזור שיצא 40 סיכוי של 25 אחוז שיצא 10 לדוגמה?

avatar ענה משתמש_232612 ב 07 ליוני 2012 #

משתמש_232205
פשוט תגדיל את התווך של rand. מ 1 ל 100 ותשנה ת'תנאים.

$rand = rand(1,100);
 
  if($rand > 95){
    echo "5%";
  }
  elseif($rand > 85){
    echo "10%";
  }
  elseif($rand > 70){
    echo "15%";
  }
  elseif($rand > 50){
    echo "20%";
  }
  elseif($rand > 25){
    echo "25%";
  }
  elseif($rand > 18){
    echo "7%";
  }
  else/*if($rand > 0)*/{
    echo "18%";
  }